import axios from "axios";
import qs from "qs";

const service = axios.create({
    baseURL: process.env.VUE_APP_BASE_API, // url = base url + request url
    // withCredentials: true, // send cookies when cross-domain requests
    timeout: 5000 // request timeout
})

const http = {
    //post请求
    post(url, params) {
        return service.post(url, params, {
            transformRequest: [(params) => {
                //用于批量删除
                if (params.isArray){
                    return params;
                }
                return JSON.stringify(params)
            }],
            headers: {
                'Content-Type': 'application/json'
            }
        }).catch(err => {
            return Promise.reject(err)
        })
    },
    //put请求
    put(url, params) {
        return service.put(url, params, {
            transformRequest: [(params) => {
                // {"id":123,"name":"Alice"}
                return JSON.stringify(params)
            }],
            headers: {
                'Content-Type': 'application/json'
            }
        }).catch(err => {
            return Promise.reject(err)
        })
    },
    //get请求  params应该为键值对对象
    get(url, params) {
        return service.get(url, {
            params: params,
            paramsSerializer: (params) => {
                return qs.stringify(params)
            }
        }).catch(err => {
            return Promise.reject(err)
        })
    },
    //delete请求
    delete(url, params) {
        return service.delete(url,{
            params:params
        }).catch(err => {
            return Promise.reject(err)
        })
            //         // message.error(err.msg)
            //         return Promise.reject(err)
            //     })
        // let _params
        // if (Object.is(params, undefined || null)) {
        //     _params = ''
        // } else {
        //     _params = '/'
        //     for (const key in params) {
        //         // eslint-disable-next-line no-prototype-builtins
        //         if (params.hasOwnProperty(key) && params[key] !== null && params[key] !== '') {
        //             _params += `${params[key]}/`
        //         }
        //     }
        //     //去掉参数最后一位?
        //     _params = _params.substr(0, _params.length - 1)
        //     console.info("_params为"+_params)
        // }
        // if (_params) {
        //     return service.delete(`${url}${_params}`).catch(err => {
        //         // message.error(err.msg)
        //         return Promise.reject(err)
        //     })
        // } else {
        //     return service.delete(url).catch(err => {
        //         // message.error(err.msg)
        //         return Promise.reject(err)
        //     })
        // }
    },
}

export default http